perm filename COPY.RPH[S,DOC] blob
sn#220636 filedate 1976-06-21 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00008 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 C O P Y
C00003 00003 COPY: Syntax
C00006 00004 COPY: General Operation
C00017 00005 COPY: Device Peculiarities
C00024 00006 COPY: Switches
C00052 00007 COPY: Monitor Commands
C00055 00008 COPY: Examples
C00058 ENDMK
C⊗;
C O P Y
This documentation is taken from Appendix 2 of the Monitor Command Manual,
which can be found online in the file MONCOM.BH[UP,DOC] or in print as
SAILON 54.5.
This writeup first describes the basic COPY command with all possible
options, and then lists the other monitor commands which run COPY and
describes their special functions.
COPY: Syntax
In this section the following rules are observed. Anything in curly
brackets is optional. Anything enclosed in brokets (e.g., <.......>) has a
syntactic definition of its own and is described elsewhere. Upper and lower
case letters are legal anywhere. A break character is something which is
not a letter, a number, or a "*". This will become important when you try
to figure out some of the error messages. In this manual the term sticky
means that the sticky item is applicable until changed or until the end of
the current command.
The basic syntax for all COPY commands is:
COPY {{<destination term>}{,<list term>}←}<source term>
The character "{ }="{ } may be substituted for "{ }←"{ }.
<destination term>::=<switch term>
<source term>::= <switch term>{,<source term>}
<switch term>::= {<switch list>space}<term>{<switch list>}
<list term>::= <term>
<term>::= {dev:}{filnam{.ext}}{[prj,prg]}
| {<switch list>}{dev:}{[prj,prg]}{<switch list>}
@<spec term>
| \<filehack selector>
| ∂{ <pn> | * }{.ext}{[prj,prg]}
<spec term>::= {<spec switch list> }{dev:}{filnam{.ext}}
{[prj,prg]}{<spec switch list>}
<switch list>::= {/<switch>}{(<page list>)}{<switch list>}
<spec switch list>::={/<switch>}{<spec switch list>}
<page list>::= <page term>{,<page list>}
<page term>::= N{:M}
COPY: General Operation
COPY reads data from the logical file(s) indicated by the source term,
performs any operations requested by the switch term(s), and writes the data
on the logical file indicated by the destination term. Any listing
information goes to the list term.
Dev and p,pn are sticky in the source; that is, if they are absent, the last
one specified is used. The default device is DSK and the default p,pn is
blank (those of the current job).
A single * may be substituted for any of the following:
filnam
ext
p
pn
A * in the source term means "all." A * in the destination term means "same
as in source file being transferred."
If filnam.ext is absent in the destination term, *.* is assumed. If the
destination filnam.ext are specified (no *'s), all source files will be
concatenated into one big file with that name.
For example:
COPY DING←FOO,BAZ
would cause a file named DING to be created on your disk area comprised of
the files FOO and BAZ from your area. If filnam.* or *.ext is used in the
destination term, the source files will be copied onto the destination one
by one with the new filename or extension. <destination term>← may be left
out and DSK:*.*← will be assumed. For source terms with directory devices
you must specify the filnam.ext.
If you try to write on top of a file which already exists, you will be given
the option of deleting it or not. If any of the source files you have
specified do not exist, you will be informed and given the proper option.
If a string of source descriptors is specified, the string is executed from
left to right.
You cannot write a file in two different modes (e.g. FIL1←TTY:,DSK:FIL2).
However FIL1←TTY:,DSK:FIL2/ASCII is quite acceptable (/ASCII causes the data
mode to be 0). Data modes are explained in the UUO Manual.
The <spec term> construct causes the scanner to continue scanning in the
file specified by the term. The term must indicate a unique file. When end
of file occurs the scanner again reads from the terminal. No spec terms may
appear in the file. Switches preceding the "@" are treated as sticky
switches. Switches following the "@" are treated as sticky switches only
while reading from the indirect file. In a sense the indirect file is a
"program block." Upon leaving the "block" all defaults are reset to those
in force just before the "@". A device name and p,pn may precede the "@",
in which case the defaults are changed to those, but no operation is done.
The device and p,pn used in the spec term do not affect the current
defaults.
The \<filehack selector> construct for a term is a special shorthand feature
to allow commonly referenced files which would normally require a large
amount of typing to be entered quickly. The following is a list of legal
filehack selectors and what they are short for (<prg> stands for the current
programmer name right justified). Only enough letters to uniquely identify
the name among those in this list need be typed.
Filehack
Selector File selected What for?
MSG <prg>.MSG[2,2] Current user's mail file
MAIL <prg>.MSG[2,2] Current user's mail file
PLAN <prg>.PLN[2,2] Current user's plan file
PLN <prg>.PLN[2,2] Current user's plan file
NAP <prg>.NAP[2,2] Current user's NS notification file
NS <prg>.NAP[2,2] Current user's NS notification file
RPG *.RPG[*,<prg>] All of current user's RPG files
OPTION OPTION.TXT[*,<prg>] All of current user's option files
DOWN MAINT.TXT[2,2] System downtime forecast
DIGEST DIGEST[2,2] Latest A.P. news digest
NOTICE NOTICE.TXT[2,2] System message file
GRIPES GRIPES.TXT[2,2] System gripe file
DAY DAY.TXT[2,2] Daily birthday or holiday message
The ∂{<pn>|*} construct is another form of shorthand for referencing MAIL
files (see Appendix 4 of the Monitor Command Manual, in file
MONCOM.BH[S,DOC]). If no argument follows the ∂ then the current user's
mail file is indicated. If <pn> is used, it means that user's mail file.
And lastly, if * is used the file NOTICE.TXT[2,2] is selected (this is the
public mail file). The default extension (.MSG) and PPN ([2,2]) implied by
∂ can be explicitly overridden, e.g., ∂PRG.PLN will get user PRG's plan
file.
There is a page counter in COPY which monitors ASCII output for form feeds.
When a form feed is encountered, the counter is incremented. If a page list
is used in a term, N is taken as the starting page of this output and M (or
N if M is absent) as the ending page. Output is only active when the
counter is within the range of the page list (e.g., LIST COPY(21) would list
page 21 of the file COPY). When the end of the first term is exhausted,
control is transferred to the next term, and so on until the right
parenthesis is reached, at which point output ceases. If more than one file
is indicated, the page list is re-scanned for each one. Page lists are
never sticky. An asterisk (*) may be used in a page list instead of the
final page number, to denote the last page, e.g., LIST COPY(3:*) would list
all but the first two pages of the file COPY.
Switches will be described in a section of their own. See /LIST for an
explanation of "list term."
Logical device names may be used, but all switches apply to the physical
device. The following are legal physical devices for the copy command:
DSK UDPn DTAn MTAn TTYn
LPT XGP PTR PTP TTY
When the special character ↓ (↑A on Teletypes) appears, the scanner will
read the line character-by-character without interpretation until the next ↓
(or ↑A). This is useful for allowing non-alphameric characters to be
included in filenames, e.g., editor or spooler temporary files.
For numeric input there is always a default radix (either decimal or octal).
Sometimes, however, it is desirable to force one or the other. A number
preceded by a single quote is always interpreted in octal. A number
preceded by a double quote is always interpreted in decimal.
COPY: Device Peculiarities
Non-Directory Devices:
If the source device doesn't have a directory and the filename and/or
extension is specified by a *, then a generated filename and/or extension is
used. The generated filename starts out as AAAAAA and the generated
extension starts as COP. Either of these may be changed by specifying a
filnam.ext in the source term. If a star (*) is used, the old name is
retained; otherwise it is replaced by the new one. At the beginning of each
term the filename is either changed to that which was specified or
incremented by one letter (i.e., AAAAAZ.COP is followed by AAAABA.COP). The
following example may clear things up:
COPY DSK:*.*←MTA0:,,FOO.*,,*.BAZ
This would read 5 files from MTA0 and give them the following names:
AAAAAA.COP
AAAAAB.COP
FOO.COP
FOOA.COP
FOOB.BAZ
Disk:
If you attempt to write on an area which is protected by a password, you
will be asked the password. If you answer <cr> to the request for a
password COPY will assume that you don't know it and do the appropriate
thing. You may delete files belonging to other users (please exercise
extreme care). However, if you attempt to delete a file on a user file
directory whose programmer name is different from the one you used when
logging in, you will be asked if you are sure. All normal file protection
applies to deletions.
User Disk Pack:
COPY treats new format (file structured) UDPs like the main file disk. The
file-structure simulation which COPY provided for old format UDPs is no
longer available.
DECtapes:
DECtapes are assumed to be in PDP-6 format (which is the current format our
system uses). See the UUO Manual for an explanation of DECtape formats. If
the directory becomes full (more than 30 files), you will be told which was
the first file not transferred. If the DECtape becomes full, the file
currently being written may be incomplete. An attempt is made to detect
this condition before the transfer is initiated, but this is not always
possible. The total file capacity of a DECtape is about 71.4K words. In
order to write on a DECtape the OFF-WRITELOCK-WRITE switch must be in the
WRITE position. If not, you will be told to set it.
Magnetic tapes:
Mag tapes may be made to look like directory devices by use of the /SAVE
switch which is described later. All mag tape switches are separate for
input and output (see rules about switches in switch section). This means
that mag tape switches in the destination term don't apply to the source
terms.
Paper tape:
Paper tape I/O is done in binary non-checksummed mode unless otherwise
specified (see /ASCII). You should turn off the paper tape reader when you
are done. A paper tape with a jagged end may cause spurious data to be
read. It is best to tear it evenly at a fold.
Teletypes:
Since some terminals cannot reproduce the full Stanford character set, COPY
provides the standard SOS conversion for output of some special characters
on model 33 and model 35 Teletypes which are not in full character set mode.
See Appendix 13 of the Monitor Command Manual, in file MONCOM.BH[S,DOC], for
the SOS representation.
On display terminals, COPY displays the number of the page being read (if
>1) if reading in mode 0, i.e., the number of form feeds seen +1.
Spooling pseudo-devices:
COPY recognizes two pseudo-device names, TPL: and PGX:, to allow spooling of
the output of some copy function to the LPT or XGP, respectively. These
device names may be used only in output terms, and may not be used with file
names. COPY creates a file on the [SPL,SYS] directory containing the
desired output, and enters a spooling request for the appropriate device.
The file is deleted after spooling. For a standard COPY command, the effect
is essentially equivalent to the recommended SPOOL/RECOPY (see Appendix 3 of
the Monitor Command Manual, in the file MONCOM.BH[S,DOC]); the main
advantage of this capability is for direct spooling of list terms, e.g.,
DIRECTORY TPL:←[*,SYS]
to spool a list of the [*,SYS] file directories. (Note: It is claimed that
these pseudo-device names stand for The Pseudo Lpt and Pseudo Graphic
Xerox-machine respectively.)
COPY: Switches
The term sticky means "applies until the end of the line or until changed
temporarily or permanently by some means." Most switches appearing in the
destination term are carried over as sticky switches in the source. Those
switches which are separate for destination and source terms are indicated
by a star (*) preceding the switch name. Switches appearing in the source
term are sticky only if they precede the term with which they appear.
Otherwise, they apply only to the current term and must follow it. Only the
first six characters of a switch are significant. You are only required to
use enough characters to uniquely specify the switch.
The following switches are now available:
SWITCH ABBREV MEANING
ALL AL This switch includes all of the input file in the
output even if the file uses the offset feature
on the disk to "hide" some data at the beginning.
See the disk offset feature in the UUO Manual.
ASCII A This forces transfers to be in ASCII. Beware!
This switch will cause SOS line numbers to become
part of the text.
ASK ASK This causes dev:filnam.ext[p,pn] to be printed
for each file under consideration followed by a
question mark. If you answer "Y" the operation
will proceed, if you answer "G" the operation
will proceed but you will not be asked the for
the rest of the term, otherwise the file will be
skipped.
BINARY B This causes the data mode to be 13 and forces
word by word transfer of data.
BLOCKED BL This causes records to be ended on output
whenever they are ended on input.
CONVERT C This causes copy to treat the character following
a line feed and the first character of a file as
a FORTRAN control character. Be careful, this
happens on output.
*DENSITY=n DE This sets the density in bpi to n where n equals
800, 556, or 200. This switch is ignored for
devices other than mag tapes. The system default
density is 556.
*DSPOOL DS This switch, when used with destination or list
terms, causes the output file to be spooled with
the /DELETE switch. Output device must be disk.
This switch is illegal in source terms.
DUMPED DU This causes each 36 bit word from the input
device to be converted to the ASCII
representation of the octal number it represents
and to then be sent to the output device. The
following format is used. A "word number" is
sent to the output device which indicates which
word in the file is the first word in this row.
Then 8 data words are transferred. Then a
<cr><lf> is inserted. If desired, a "page list"
may be used for /DUMP; however, the values are
those of word addresses in the file instead of
pages. However, if the /SEARCH switch appears
before this switch (or the DIRECTORY monitor
command was typed), this switch has a different
meaning: it includes in the directory listing the
date on which the file was last included in a
system DART dump, and the number of the tape on
which it was dumped. If the file has been
permanently dumped twice or more, the character
">" appears after the tape number.
*EVEN EV This sets mag tape transfers to even parity.
EXTRA=n EX Whenever a line feed is seen n extra line feeds
are put out; n must be an unsigned decimal
integer. If n=0 line feeds are converted to a
177 followed by a 21; this inhibits form ejection
at page boundaries on the line printer.
EXTRA≡n EX (Note "≡" not "=".) This switch, used with the
XGP only, sets the inter-line spacing to n raster
units.
FAST F All the names specified by the source term are
listed (no size or other info). This switch is
therefore much faster than /SEARCH.
FONT#n=file FON This switch is used when copying to the XGP to
select a font. Font number n (default is 0) is
taken from the specified file. The file
specification can include any of filename,
extension, and PPN; the defaults are
FIX25.FNT[XGP,SYS].
FOO FOO This switch is used to produce a file directory
listing meant to be read by various programs
rather than by a human being. The switch name
derives from the fact that the switch was created
for the benefit of layout and drawing programs
used in the design of the late, lamented SUPER
FOONLY computer.
FULL FU If /SEARCH is specified, this switch provides
more information than is usually given in the
directory listing; specifically, it implies
/UFDPRO, /TIME, /PROTECTION, /WRITER, and
/REFERENCED. Also, if you are at a Data Disc or
III display terminal, it implies /DUMPED. This
switch does not automatically imply /SEARCH.
GTOTAL G At the beginning of the execution of a term the
term is printed. At the end of the term, a line
is typed of the form
TOTAL= x.x n BLK pp%
where x.x is the size of the file in K and tenths
(if the file is smaller than 1K, the size in
words is typed instead), n is the number of disk
blocks allocated to the file, and pp is the
percent of the allocated space which is actually
used. This switch implies /SEARCH.
HEADER H This causes a header to be put out at what would
be the top of each page on the line printer. The
header looks like this:
DATE TIME FILNAM.EXT P,PN PAGE N-M
The current date and time are used, N is the
logical page number (number of form feeds seen
plus one), and M is the physical page of that
logical page.
IGNI IGNI This causes input errors to be ignored (no
message).
IGNO IGNO This causes output errors to be ignored.
KILL K The input file is deleted after the transfer is
finished, even if the output filename is the same
as the input filename. If the 200 bit in the
file's protection code is on, COPY asks before
deleting the file.
LIST L This causes the names of the files transferred
during that term to be listed. If the input
device is the disk the [p,pn] are also listed.
Non-directory devices will obviously list
nothing. The output will go to the "list term".
If the list term is absent, the output will go to
your terminal.
*MLENGTH=nnnn M This allows the user to specify nonstandard
length records for mag tape I/O, where nnnn is a
1 to 4 digit number interpreted in octal which
specifies the number of data words per record.
NONUMBERS N This deletes line numbers from files that have
them. This forces an ASCII mode transfer; in
fact, /NONUMBERS can be used on any ASCII
transfer. Do not use this switch on anything but
text files or you will be sorry.
NOFF NOF This suppresses output of formfeed characters.
It implies /ASCII, and can be applied to single
source files.
NOSPACES NOS This switch eliminates spaces at the end of a
line.
ODD OD This sets mag tape transfers to odd parity. This
mode is standard and is the default option.
OFFSET OF This switch implies /SEARCH, and causes the file
offset (in decimal) to be included in the
directory listing. The offset, if any, is the
number of "hidden" records at the beginning of
the file which will not normally be seen when the
file is read. See the UUO Manual for more
information about offsets.
OPTIMIZE OP This forces COPY to treat the file as one
produced by SOS, and to pack it by allowing lines
to span a record break as long as line numbers
are not the last word of a record. SOS will read
an OPTIMIZEd file, but will not write a record
ending with a partial line. A file which cannot
be read by SOS because of line numbers or page
marks at the ends of records will be "fixed" by
this switch.
PROTECTION P If this switch is preceded by /SEARCH (or used
with the DIRECTORY monitor command), it causes
the protection of the listed files to be included
in the listing and implies the /UFDPRO switch to
print the UFD protection and the UFD's default
file protection. Otherwise, it must be given
with a protection code and has a different
meaning, as in the following paragraph.
PROTECTION=nnn P This causes the output file to have the
protection nnn, where n is a digit from 0 to 7.
If no protection switch is specified, the
protection of the input file is used (for
non-disk input 000 is used). All three n's must
be present. This switch applies only to disk
output. When concatenating files, the protection
applicable to the first file transferred is used.
QUIET Q This switch prevents you from getting the message
"FILE ALREADY EXISTS...." If the output file
already exists, it is deleted without a sound.
Also, if this switch appears with /SEARCH, then
only the p,pn and the size on that p,pn are
printed. This switch also prevents being asked
for confirmation when trying to delete a file
with the 200 bit on in its protection code.
REFERENCED REF This switch is like /SEARCH below, but includes
in the directory listing an extra column
containing the date on which each file was last
read (referenced by LOOKUP).
RENAME REN A rename is done on the input file with the
output file information. /QUIET applies when the
output filnam.ext already exists.
*SAVE SA If the output device is a mag tape, four words of
directory information are written. If the input
device is a mag tape, four words of directory
information are read and compared with the source
name specified. If they don't match, that file
is skipped and the next examined until a match is
found or the end of tape is reached.
SEARCH SE This switch overrides all other switches. It
gives you more information than /LIST and
suppresses any transfers. Added to the /LIST
information, you get the size of the file in 1K
blocks (or in words if less than 1K) and the date
it was last written. If you are at a Data Disc
or III display terminal, it also lists the time
when the file was written. The information given
can be further extended by the switches /FULL,
/TIME, /PROTECTION, /WRITER, /REFERENCED,
/DUMPED, and /OFFSET. (The offset will always be
listed if nonzero for a particular file.) If a
list term is specified, all of the possible
information is listed. The output goes to the
same place as with /LIST, with the following
variation: If the "list term" is omitted, the
listing goes to your terminal and the information
and heading for disk input will be truncated to
FILNAM.EXT, [P,PN], and SIZE. If /QUIET is used
with this switch and no list term was specified,
only the p,pn and the total size of each disk
area is printed.
*SPOOL SP This is the same as /DSPOOL except that the
/DELETE switch is not used in spooling the file.
TIME TIM This switch implies /SEARCH, and causes the
directory listing to include the time as well as
the date when the file was last written.
TITLE TIT This causes a "title page" to be put out in large
block letters followed by a form feed. The title
is of this form:
FILNAM.EXT
P,PN
TIME
DATE
The date and time are when the file was last
written. For non-directory devices, <device
name>: is printed in place of filnam.ext and
p,pn.
UFDPRO U This switch implies /SEARCH but also causes the
UFD protection and the UFD's default file
protection to be printed for each PPN for which a
header is listed. These two protection codes are
output on the PPN's header line in the following
form:
[PRJ,PRG] UFD PRO=405; DEF PRO=000
The /UFDPRO switch is implied by /FULL and by
/PROTECTION (in a DIRECTORY command or following
/SEARCH). To get just these protections typed
out (without listing any files), use
DIRECTORY [PRJ,PRG]/Q/F/U. Note that if the PPN
header is not printed, the UFD protection will
not be listed.
WAIT WA This switch will automatically wait for a busy
device (e.g., XGP) without requiring confirmation
by the user.
WRITER WR This switch includes the PPN and job name of the
last writer in the directory listing for disk
files. It implies /SEARCH.
COPY: Monitor Commands
The following is a list of the monitor commands which use COPY and how they
work. The syntax is the same as for COPY.
COMMAND EFFECT
DELETE This deletes all the files specified by the source term, and
types the space reclaimed as with the /GTOTAL switch. If
the 200 bit is on in the file protection key, you will be
asked if you really want to delete the file (/QUIET
overrides this feature). The destination term is
interpreted as the list term. The list term is therefore
illegal.
DIRECTORYThis gives you all or part of the file information for the
source term(s) (or *.* if no source term is used). If /L
appears anywhere in the command string the default list
device will be set to the line printer. The destination
term is treated the same as for DELETE.
LIST This sets the default output device to the line printer and
turns on the /HEADER switch.
PRINT This sets the default output device to the line printer and
turns on the /NONUMBERS and /TITLE switches.
RENAME This allows you to change the filename, extension, PPN, and
protection of a file. The format is newname←oldname. Use
/PROTECTION=nnn to change protection.
TRANSFER This copies files from one place to another and deletes the
source files.
TYPE This sets the default output device to your terminal.
XGPLIST This sets the default output device to the XGP.
COPY: Examples
COPY DTA4:←*.*
This would cause all the files on your disk area to be written on DTA4.
COPY ←DTA4:*.*
This would cause all the files on DTA4 to be written on your disk area.
COPY <filnam.ext>/NONUMBERS
This would delete sequence numbers (if any) from the file indicated.
COPY [2,RPH]←*.*[1,RPH]
This would cause all the files on 1,RPH to be copied onto 2,RPH no matter
who you are logged in under (subject to file protection failure).
TYPE <filnam.ext>
This would cause the specified file to be listed on the terminal you are
logged in on.
LIST <filnam.ext>(2)/NONUMBERS
This would cause page 2 of the specified file to be listed on the line
printer with headers and without line numbers.
DIR LPT:←*.TXT[*,*]
This would cause the filnam.ext, [p,pn], size, etc. for all files in the
world with the extension TXT to be listed on the line printer.
COPY FOO←TTY:,FOO/ASCII
This would allow you to add text at the beginning of the file FOO (/ASCII is
mandatory).
RENAME FOO/PROTECTION=077
This would change the protection of the file FOO to 077 without doing a
transfer.
PRINT FOO
This would cause the file called FOO to be listed on the line printer
without line numbers and with a title page.
DIR[*,RPH]/QUIET
This will tell RPH the size of each of his areas without printing the
filenames and other information.
COPY TEMP←↓$ED$09↓.TMP
This copies the file $ED$09.TMP into TEMP so that you can edit it. (These
names are created by SOS.)
DELETE @DEL
This would use the file DEL as a list of files to be deleted. This method
is very good for "cleaning" your area.
DIR FOO/WRITER
This would list the standard directory information for file FOO along with
the PPN and job name of the job that wrote the file.